register RegType a, b, c, d, e, f, g, h, i, j, k, l, m, n;
a = (RegType)1; b = (RegType)2; c = (RegType)3; d = (RegType)4; e = (RegType)5; f = (RegType)6; g = (RegType)7; h = (RegType)8; i = (RegType)9;
j = (RegType)10; k = (RegType)11; l = (RegType)12; m = (RegType)13; n = (RegType)14;
if (! init_dyload(argv[0])) {
printf("Something wrong in init_dyload.\n");
abort();
}
#ifdef CEDAR
if (xr_setjmp (&cjb, 0)) {
#else
if (_setjmp(&cjb)) {
#endif
printf("Got a non-zero return from xr set_jmp, vals: ");
dump_vars(a, b, c, d, e, f, g, h, i, j, k, l, m, n);
printf("Above should be all 43's\n");
exit(0);
} else {
printf("Got a zero return from xr set_jmp, vals: ");
dump_vars(a, b, c, d, e, f, g, h, i, j, k, l, m, n);
printf("Above should be all 1 through 14.\n");
}
a = (RegType)43; b = (RegType)43; c = (RegType)43; d = (RegType)43; e = (RegType)43; f = (RegType)43; g = (RegType)43; h = (RegType)43; i = (RegType)43;
j = (RegType)43; k = (RegType)43; l = (RegType)43; m = (RegType)43; n = (RegType)43;
/* use_vars(a, b, c, d, e, f, g, h, i, j, k, l, m, n); */
godeep();
exit();
}
godeep()
{
register RegType x,y;
x = (RegType)19;
y = (RegType)33;
godeeper(x,y);
}
godeeper(a,b)
{
register RegType y;
y = (RegType)30;
/* use_vars(y,z);*/
smash_regs();
}
smash_regs()
{
register RegType a, b, c, d, e, f, g, h, i, j, k, l, m, n;
a = 0; b = 0; c = 0; d = 0; e = 0; f = 0; g = 0; h = 0; i = 0;
j = 0; k = 0; l = 0; m = 0; n = 0;
/* printf("Inside smash_regs: ");
printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",a, b, c, d, e, f, g, h, i, j, k, l, m, n);
*/ LONGJMP(&cjb,1);
}
dump_vars(a, b, c, d, e, f, g, h, i, j, k, l, m, n)
{
printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",a, b, c, d, e, f, g, h, i, j, k, l, m, n);
}
use_vars(a, b, c, d, e, f, g, h, i, j, k, l, m, n)